//本质是双重遍历，效率差一些
function unique(arr) {
    let result = []  //用于存储最后的结果
    arr.forEach(item => {
        if (result.indexOf(item)===-1)  //判断result里是否含有item这个元素  =-1表示没有该元素
        {
            //若没有该元素，则插入到result中
            result.push(item)
        }
    })
    return result
}


function unique2(arr)
{
    let result=[]
    const obj={}
    arr.forEach(item=>{
        if(obj[item]===undefined)  //如果obj没有这个属性  就说明result也还没有将item这个值放进去 
        {
            obj[item]=true;  //将item作为下标（属性）存储在obj中
            result.push(item)
        }
    })
    return result
}

function unique3(arr){
    //将数组转化为集合
    let set=new Set(arr);//将数组转化为集合
    //将set展开创建一个数组
    let array=[...set] //再将集合转化为数组
    return array

    //return [...new Set(arr)]
}